using System;
using Sinacor.Infra.Common;
using System.Collections.Generic;
using Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request;
using Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
    /// <summary>
    /// Classe tradutora entre objetos CancelarOrdemDistribuida e CancelarOrdemDistribuida
    /// </summary>
    public class CancelarOrdemDistribuidaToCancelarOrdemDistribuida : BaseTranslator<Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.CancelarOrdemDistribuida, Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request.CancelarOrdemDistribuida, List<Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.CancelarOrdemDistribuida>, List<Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request.CancelarOrdemDistribuida>>
    {
        public override Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.CancelarOrdemDistribuida Translate(Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request.CancelarOrdemDistribuida from)
        {
            Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.CancelarOrdemDistribuida to = new Sinacor.Servico.Bovespa.Ordens.BusinessEntity.Parameter.CancelarOrdemDistribuida();
            to.CodigoFilhote = from.CodigoFilhote;
            to.DataOrdem = from.DataOrdem;
            to.DataPregao = from.DataPregao;
            to.NumeroConjunto = from.NumeroConjunto;
            to.NumeroOrdem = from.NumeroOrdem;
            to.NumeroOrdemSubSequencia = from.NumeroOrdemSubSequencia;
            to.TipoCancelamento = from.TipoCancelamento;
            to.TipoDistribuicao = from.TipoDistribuicao;

            to.CodigoBroker = from.CodigoBroker;
            to.Bolsa = from.Bolsa;
            to.Titulo = from.Titulo;
            to.NumeroNegocio = from.NumeroNegocio;

            switch (from.NaturezaOperacao)
            {
                case DataContract.Enum.TipoNaturezaOperacao.Compra:
                    to.NaturezaOperacao = BusinessEntity.Enum.TipoNaturezaOperacao.Compra;
                    break;
                case DataContract.Enum.TipoNaturezaOperacao.Venda:
                    to.NaturezaOperacao = BusinessEntity.Enum.TipoNaturezaOperacao.Venda;
                    break;
            }

            return to;
        }



    }
}

